// 常量定义
export const API_BASE_URL = 'http://localhost:8080'

// 订单状态
export const ORDER_STATUS = {
  PENDING_PAYMENT: 1,    // 待付款
  PENDING_ACCEPT: 2,     // 待接单
  DELIVERING: 3,         // 派送中
  DELIVERED: 4,          // 已送达
  COMPLETED: 5,          // 已完成
  CANCELLED: 6           // 已取消
}

// 订单状态文本
export const ORDER_STATUS_TEXT = {
  [ORDER_STATUS.PENDING_PAYMENT]: '待付款',
  [ORDER_STATUS.PENDING_ACCEPT]: '待接单',
  [ORDER_STATUS.DELIVERING]: '派送中',
  [ORDER_STATUS.DELIVERED]: '已送达',
  [ORDER_STATUS.COMPLETED]: '已完成',
  [ORDER_STATUS.CANCELLED]: '已取消'
}

// 支付方式
export const PAY_METHOD = {
  WECHAT: 1,    // 微信支付
  ALIPAY: 2     // 支付宝
}

// 支付方式文本
export const PAY_METHOD_TEXT = {
  [PAY_METHOD.WECHAT]: '微信支付',
  [PAY_METHOD.ALIPAY]: '支付宝'
}

// 配送状态
export const DELIVERY_STATUS = {
  IMMEDIATE: 1,  // 立即送出
  SCHEDULED: 0   // 选择具体时间
}

// 餐具状态
export const TABLEWARE_STATUS = {
  BY_MEAL: 1,    // 按餐量提供
  BY_COUNT: 0    // 选择具体数量
}

// 分类类型
export const CATEGORY_TYPE = {
  DISH: 1,       // 菜品分类
  SETMEAL: 2     // 套餐分类
}

// 店铺状态
export const SHOP_STATUS = {
  OPEN: 1,       // 营业
  CLOSED: 0      // 打烊
}

// 性别
export const GENDER = {
  MALE: '1',     // 男
  FEMALE: '0'    // 女
}

// 性别文本
export const GENDER_TEXT = {
  [GENDER.MALE]: '先生',
  [GENDER.FEMALE]: '女士'
}

// 默认地址标签
export const ADDRESS_LABELS = ['家', '公司', '学校', '其他']

// 页面路径
export const PAGE_PATHS = {
  INDEX: '/pages/index/index',
  CATEGORY: '/pages/category/category',
  DISH: '/pages/dish/dish',
  SETMEAL: '/pages/setmeal/setmeal',
  CART: '/pages/cart/cart',
  ADDRESS: '/pages/address/address',
  ADDRESS_EDIT: '/pages/address-edit/address-edit',
  ORDER: '/pages/order/order',
  ORDER_DETAIL: '/pages/order-detail/order-detail',
  ORDER_LIST: '/pages/order-list/order-list',
  PROFILE: '/pages/profile/profile',
  LOGIN: '/pages/login/login'
}

// 错误码
export const ERROR_CODES = {
  SUCCESS: 1,
  FAIL: 0,
  UNAUTHORIZED: 401,
  FORBIDDEN: 403,
  NOT_FOUND: 404,
  SERVER_ERROR: 500
}

// 错误信息
export const ERROR_MESSAGES = {
  [ERROR_CODES.SUCCESS]: '操作成功',
  [ERROR_CODES.FAIL]: '操作失败',
  [ERROR_CODES.UNAUTHORIZED]: '未授权，请重新登录',
  [ERROR_CODES.FORBIDDEN]: '权限不足',
  [ERROR_CODES.NOT_FOUND]: '资源不存在',
  [ERROR_CODES.SERVER_ERROR]: '服务器错误'
}

// 本地存储键名
export const STORAGE_KEYS = {
  TOKEN: 'token',
  USER_INFO: 'userInfo',
  CART_DATA: 'cartData',
  ADDRESS_DATA: 'addressData'
}

// 请求超时时间
export const REQUEST_TIMEOUT = 10000

// 分页配置
export const PAGINATION = {
  DEFAULT_PAGE: 1,
  DEFAULT_PAGE_SIZE: 10,
  MAX_PAGE_SIZE: 50
}

// 图片配置
export const IMAGE_CONFIG = {
  MAX_SIZE: 5 * 1024 * 1024, // 5MB
  ALLOWED_TYPES: ['jpg', 'jpeg', 'png', 'gif'],
  QUALITY: 0.8
}

// 正则表达式
export const REGEX = {
  PHONE: /^1[3-9]\d{9}$/,
  EMAIL: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
  PASSWORD: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d@$!%*?&]{8,}$/
}
